#pragma once
#include "stdafx.h"

typedef Vector< XMFLOAT3 > Vertices;
typedef Vertices::iterator VerticesIter;
typedef Vector< unsigned int > Indexs;
typedef Indexs::iterator IndexsIter;
typedef Vector< XMFLOAT2 > Texs;
typedef Texs::iterator TexsIter;

struct Vert
{
	unsigned int start;
	unsigned int count;
};
	
struct Weight
{
	float bias;
	int boneId;
	XMFLOAT3 pos;
};

struct Bone
{
	XMFLOAT3 pos;
	XMFLOAT4 orientation;
};

typedef Vector<Vert*> Verts;
typedef Verts::iterator VertsIter;
typedef Vector<Weight*> Weights;
typedef Weights::iterator WeightsIter;
typedef Vector<Bone*> Bones;
typedef Vector<Bones*> KeyFrame;
typedef KeyFrame::iterator KeyFrameIter;
typedef Bones::iterator BonesIter;

//struct KeyFrame
//{
//	system_clock::time_point startTime;
//	system_clock::time_point totalTime;
//	Bones bones;
//};
//
//typedef Vector<KeyFrame*> KeyFrames;

struct AnimStr
{
	AnimStr() {}
	~AnimStr()
	{
		delete[] keyFrames;
	}
	string animName;
	KeyFrame* keyFrames;
	int frameRate;
};

typedef Vector<AnimStr*> Anims;
typedef Anims::iterator AnimsIter;